package com.yh.service.redis;

import com.yh.entity.User;
import com.yh.vo.MovieVO;

/**
 * @Author yuhuan
 * @Date 2022/3/22
 */
public interface UpdateDataToRedis {

    /**
     * 同步已登录用户的信息
     *
     * @param userId 用户ID
     */
    public void updateLoginUser(String userId);

    /**
     * 清理已登录用户的信息
     *
     * @param userId 用户ID
     */
    public void clearLoginUser(String userId);

    /**
     * 将用户信息保存到缓存并设置有效时间
     *
     * @param user 用户信息
     */
    public void saveUserToRedis(User user);

    /**
     * 将电影信息保存到redis
     *
     * @param movieVO 电影信息
     */
    public void saveMovieDetailToRedis(MovieVO movieVO);

    /**
     * 清理旧的影片信息
     *
     * @param movieId 影片ID
     * @return 清理的结果。如果信息仍然存在于缓存则返回true
     */
    public boolean clearMovie(int movieId);

    /**
     * 拼接目标影片在缓存中的唯一ID
     *
     * @param movieId 影片ID
     * @return 拼接后的影片ID
     */
    public String createMovieIdInRedis(int movieId);

    /**
     * 生成用户在缓存中的KEY
     *
     * @param userId 用户ID
     * @return 用户在缓存中的ID
     */
    public String createUserIdInRedis(String userId);
}
